package package_paiement;

import java.util.HashMap;
import java.util.Map.Entry;

// To extend avec le POA GestionPaiement
public class Banque {

	private String nom;
	private HashMap<String, Compte> lesComptes;
	
	public Banque(String name)
	{
		lesComptes = new HashMap<String, Compte>();
		this.setNom(name);
	}
	
	// Creer Compte
	public float creerCpt(String idUtilisateur, String infoPaiement, float montant) 
	{
		lesComptes.put(idUtilisateur, new Compte(idUtilisateur, infoPaiement, montant));
		
		return lesComptes.get(idUtilisateur).getSolde();
	}
	
	//if not found return null 
	public Compte getCompte(String IDUtilisateur)
	{
		return lesComptes.get(IDUtilisateur);
	}
	
	@Override
	public String toString() {
		String ret = "Comptes";
		for(Entry<String, Compte> entry : lesComptes.entrySet()) {
		    Compte valeur = entry.getValue();
		    ret += "\n "+ "ID:" + valeur.getIdUtilisateur() + " - montant: " + valeur.getSolde();
		}
		return ret;
	}
	
	// Solde du compte // -1 if null
	public float getSolde(String IDUtilisateur) 
	{
		return (lesComptes.get(IDUtilisateur) == null) ? -1 : lesComptes.get(IDUtilisateur).getSolde();
	}

	// Operations sur compte
	// - 1 si debit impossible
	public float debiterCpt(String IDUtilisateur, float montant) 
	{
		return lesComptes.get(IDUtilisateur).debiter(montant);
	}

	public float crediterCpt(String IDUtilisateur, float montant) 
	{
		return lesComptes.get(IDUtilisateur).crediter(montant);
	}
	
	// Getter and Setters
	public void setNom(String name)
	{
		this.nom = name;
	}
	
	public String getNom()
	{
		return this.nom;
	}

}
